#ifndef POINT_H
#define POINT_H

#include <ostream>

class Point
{
public:
    Point(double x = 0., double y = 0., double z = 0.);
    ~Point();
    void set(double x, double y, double z);
    void setX(double x);
    void setY(double y);
    void setZ(double z);
    double x() const;
    double y() const;
    double z() const;
    Point normalized();
    double magnitude();
    void limit(double max);
    Point& operator=(const Point& p);
    Point operator+(const Point p) const;
    Point operator-(const Point p) const;
    Point operator*(const Point p) const;
    Point operator*(double v) const;
    Point operator/(const Point p) const;
    Point operator/(double v) const;
    void debugOut();

private:
    double m_x;
    double m_y;
    double m_z;
};

#endif // POINT_H
